SYNOLOGY-CAM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    MODULE-IDENTITY,
    OBJECT-TYPE,
    enterprises
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION,
    TruthValue
        FROM SNMPv2-TC;

synologyCAM MODULE-IDENTITY
    LAST-UPDATED "202501030000Z"
    ORGANIZATION "www.synology.com"
    CONTACT-INFO
        "Synology Inc.
         Email: snmp@synology.com"
    DESCRIPTION "Status of Continuous Availability Manager"
    REVISION    "202501030000Z"
    DESCRIPTION "First revision"
    ::= { synology 115 }

synology    OBJECT IDENTIFIER
    ::= { enterprises 6574 }

ClusterStatusCAType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This TC enumerates cluster status."
    SYNTAX      INTEGER {
                    normal(1),
                    processing(2),
                    warning(3),
                    critical(4),
                    unknown(5)
                }

HeartbeatStatusCAType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This TC enumerates heartbeat status."
    SYNTAX      INTEGER {
                    normal(1),
                    broken(2),
                    warning(3)
                }

IPFailoverGroupStatusType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This TC enumerates IP Failover Group status."
    SYNTAX      INTEGER {
                    normal(1),
                    notSetup(2),
                    warning(3),
                    critical(4),
                    notAvailable(5)
                }

clusterStatusCA OBJECT-TYPE
    SYNTAX      ClusterStatusCAType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "One of critical, warning, processing, normal, or unknown"
    ::= { synologyCAM 1 }

controllerSerialNum OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Serial number of controller"
    ::= { synologyCAM 2 }

controllerServiceAvailable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether controller has availability to provide service"
    ::= { synologyCAM 3 }

heartbeatStatusCA OBJECT-TYPE
    SYNTAX      HeartbeatStatusCAType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "One of warning, broken, or normal"
    ::= { synologyCAM 4 }

ipFailoverGroupStatusCA OBJECT-TYPE
    SYNTAX      IPFailoverGroupStatusType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "One of critical, warning, not-setup, not-available or normal"
    ::= { synologyCAM 5 }

synologyCAMConformance   OBJECT IDENTIFIER ::= { synologyCAM 6 }
synologyCAMCompliances   OBJECT IDENTIFIER ::= { synologyCAMConformance 1 }
synologyCAMGroups        OBJECT IDENTIFIER ::= { synologyCAMConformance 2 }

synologyCAMCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION "The compliance statement for CAM information."
    MODULE      -- this module
        MANDATORY-GROUPS { synologyCAMGroup }
    ::= { synologyCAMCompliances 1 }

synologyCAMGroup OBJECT-GROUP
    OBJECTS     {
                    clusterStatusCA,
                    controllerSerialNum,
                    controllerServiceAvailable,
                    heartbeatStatusCA,
                    ipFailoverGroupStatusCA
                }
    STATUS      current
    DESCRIPTION "A collection of objects providing basic information of Continuous-Availability Manager."
    ::= { synologyCAMGroups 1 }
END
